Philosophy

NeoVim as an ecosystem
  • Building an ecosystem :

    • Since everything is built on top of the same foundation, an "ecosystem" is created rather than a "set of tools".

    • This helps learning new tools, since they are built on top of something familiar.

      • This is not necessarily true, since many plugins do so much that they require learning from scratch, with shortcuts that override previous behavior.

  • Customizing the look, creating a harmonious visual :

    • Since everything is in the same place, themes tend to give a comfortable and uniform look, creating the feeling of a deep ecosystem.

  • More expansive :

    • Making a CLI tool feels super complex due to OSes, languages, etc. Besides, it often lacks a well-defined use case because it's ultra niche.

    • However, making a plugin for NeoVim feels considerably simple, since it's done in Lua (Roblox, WoW).

    • The fact that NeoVim can use high-level abstractions for plugin creation puts it FAR ahead in terms of expansiveness and customization of plugins, etc.

      • Maybe this is one of the main downsides regarding terminal use, since it's simply too niche and inaccessible due to complexity and awful programming languages.

      • Over time a CLI tool might start to look like closed-source software in terms of difficulty of modification and customization.

      • Obviously CLI tools tend to be customizable, but still don't feel particularly appetizing as an ecosystem.

  • Impractical for some uses common to me :

    • Markdown:

      • Writing and manipulating notes makes more sense to be done in NeoVim, using NeoVim's file structure, because of plugins, macros, etc.

  • Nvim has less volatile compatibility :

    • Nvim is well-established, and since the massive majority of plugins don't depend on other tools, the Nvim tool ecosystem is naturally more compatible than a bundle of CLI tools.

  • Terminal multiplexers incompatible on Windows :

    • TMux and Zellij have no native support for Windows.

    • TMux needs WSL.

    • Zellij on Windows is experimental.

  • Terminal tools give a disappointing workflow :

    • Except for Broot .

    • See the reviews .

    • ~eza

    • ~tlrs

    • zoxide.

    • fzf.

    • bat

Terminal + CLI tools + NeoVim
  • Unix Philosophy .

    • "Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new "features"."

    • "Expect the output of every program to become the input to another, as yet unknown, program."

  • Overload of modes and Shortcuts; hierarchical system :

    • Nvim has 3 modes: Normal, Insert and Visual. There are other modes, but everything is fundamentally based on these.

    • The problem is that many plugins use these modes to create IDE-like interfaces and experiences, but that can make it clunky to switch modes while editing a window where it doesn't make sense.

    • Nvim shortcuts are "good" for text editing, but many plugins edit these shortcuts so configured behavior can be overwritten by the plugin, or vice versa.

    • Combining the 'modes' problem with the shortcuts problem creates an environment that feels unpredictable , so sometimes I'm not sure what to expect when installing a new plugin.

      • Every new tool brings this insecurity, but since plugins run on top  of Nvim and not beside  it, it makes things more unpredictable than usual.

      • Feels like a classic hierarchy vs component pattern problem, since everything is built inheriting Nvim's default behavior, etc.